SuperWorld
以下是SuperWorld​类的成员变量、类型定义和成员函数的详细说明,以表格形式列出:
类型定义
类型定义 描述
SuperComponentCreateOptions 一个类型别名,定义了创建组件时的选项结构,包含目标对象、位置和其他任意数据。
成员变量
成员变量 描述
source_instance: World 保存原生世界实例的引用。
static Entitys: SuperEntity[] 存储所有SuperEntity​实例的静态数组。
static Players: SuperPlayer[] 存储所有SuperPlayer​实例的静态数组。
成员函数
成员函数 描述
constructor(source_instance: World) 构造函数,初始化世界实例,并保存原生世界实例的引用。
UpDataPlayers() 更新Players​数组,确保它包含所有有效的玩家实例。
ReloadEntitys() 重新加载所有实体,从世界中获取并更新Entitys​数组。
AddToEntitys(sp_entity: SuperEntity) 将一个新的SuperEntity​实例添加到Entitys​数组中。
RemoveEntitysForID(id: string) 根据ID从Entitys​数组中移除对应的实体实例。
RemoveFromEntitys(entity: Entity | SuperEntity) 移除实体。
CreateEntityInstance<T extends SuperEntity>(entity: Entity): T 创建一个新的实体实例,可以是SuperEntity​或SuperPlayer​。
getAllEntitys() 获取所有实体的数组。
onWorldInitializeBefore(event: WorldInitializeBeforeEvent) 世界初始化前的事件处理函数。
onWorldInitializeAfter(event: WorldInitializeAfterEvent) 世界初始化后的事件处理函数。
readonly afterEvents: WorldAfterEvents 世界级别的事件集合,事件发生后的回调。
readonly beforeEvents: WorldBeforeEvents 世界级别的事件集合,事件发生前的回调。
readonly gameRules: GameRules 游戏规则实例。
readonly isHardcore: boolean 指示世界是否为硬核模式。
readonly scoreboard: Scoreboard 世界得分板实例。
readonly structureManager: StructureManager 结构管理器实例。
broadcastClientMessage(id: string, value: string) 广播客户端消息。
clearDynamicProperties() 清除所有动态属性。
getAbsoluteTime() 获取世界自启动以来的绝对时间。
getAllPlayers() 获取所有玩家的数组。
getDay() 获取当前天数。
getDefaultSpawnLocation() 获取默认的生成点位置。
getDimension(dimensionId: string) 根据维度ID获取维度实例。
getDynamicProperty(identifier: string) 获取动态属性的值。
getDynamicPropertyIds() 获取所有动态属性的标识符数组。
getDynamicPropertyTotalByteCount() 获取所有动态属性的总字节大小。
getEntity(id: string) 根据ID获取实体实例。
getMoonPhase() 获取当前的月相。
getPlayers(options?: EntityQueryOptions) 根据查询选项获取玩家数组。
getTimeOfDay() 获取当前的一天中的时间。
playMusic(trackId: string, musicOptions?: MusicOptions) 播放音乐。
playSound(soundId: string, location: Vector3, soundOptions?: WorldSoundOptions) 播放声音。
queueMusic(trackId: string, musicOptions?: MusicOptions) 队列音乐。
sendMessage(message: (RawMessage | string)[] | RawMessage | string): void 给全部玩家发送聊天信息。
setAbsoluteTime(absoluteTime: number) 设置世界绝对时间。
setDefaultSpawnLocation(spawnLocation: Vector3) 设置默认生成点位置。
setDynamicProperty(identifier: string, value?: boolean | number | string | Vector3): void 设置世界的动态属性。
setTimeOfDay(timeOfDay: number | TimeOfDay): void 设置世界时间。
stopMusic() 停止播放音乐。
详细描述
SuperWorld​类继承自Super​类,用于创建和管理游戏世界中的实体和玩家。这个类提供了一系列的事件处理函数,以便在世界发生特定行为时进行响应。
constructor
构造函数初始化世界的source_instance​,并保存原生世界实例的引用。
UpDataPlayers
更新Players​数组,确保它包含所有有效的玩家实例。
ReloadEntitys
重新加载所有实体,从世界中获取并更新Entitys​数组。
AddToEntitys
将一个新的SuperEntity​实例添加到Entitys​数组中。
RemoveEntitysForID​ 和 RemoveFromEntitys
根据ID或实体实例从Entitys​数组中移除对应的实体。
CreateEntityInstance
创建一个新的实体实例,可以是SuperEntity​或SuperPlayer​。
getAllEntitys​ 和 getAllPlayers
获取所有实体和玩家的数组。
getEntity
根据ID获取实体实例。
getDimension
根据维度ID获取维度实例。
playMusic​、playSound​、queueMusic​、stopMusic
播放音乐和声音相关的方法。
sendMessage
向所有玩家发送消息。
setAbsoluteTime​、setTimeOfDay
设置世界的时间。
SuperWorld​类提供了一个框架,用于在游戏中创建和管理世界中的实体和玩家,以及响应世界事件。通过这个类,可以方便地扩展和修改游戏世界的行为和属性。